package com.yuhf.page;

import edu.yuhf.Constants;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;

import java.util.List;

/**
 * Page 类用于封装分页信息，包含当前页、每页记录数、总记录数、总页数以及当前页的数据列表。
 * 该类使用 Lombok 注解简化代码，支持无参构造和必需参数构造。
 * @param <T> 泛型参数，表示当前页数据列表中元素的类型。
 */
@Data
@NoArgsConstructor
@RequiredArgsConstructor
public class Page<T> {
    @NonNull
    private int currentPage;        //当前页，该值是核心的分页信息，只要是分页操作，该值就必须有。
    private int rowNumber= Constants.ROW_NUMBER;    //每页显示的行数
    private int totalRow;           //总行数
    private int totalPage;          //总页数
    private List<T> pageData;       //当前页显示的数据

    public void setTotalPage(int totalRow){
        this.totalRow=totalRow;
        totalPage = 0==totalRow%rowNumber?totalRow/rowNumber:totalRow/rowNumber+1;   //计算总页数
    }
}
